package cn.z2huo.demo.model.dataobject.company;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>该 DO 对应数据库表为 z2huo_company_property
 * <p>
 * 
 * @author z2huo
 * @date   2025-06-25
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("z2huo_company_property")
public class CompanyPropertyDO implements Serializable {

    @Serial
    private static final long serialVersionUID = -3926514805640110360L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 机构代码
     */
    private String comCode;

    /**
     * 机构名称
     */
    private String comName;

    /**
     * 机构简称
     */
    private String comShortName;

    /**
     * 直接上级机构的机构代码
     */
    private String upperComCode;

    /**
     * 上级机构路径
     */
    private String upperPath;

    /**
     * 机构类型 0 出单 1 归属 2 收付
     */
    private String comType;

    /**
     * 机构标志 1 机构 2 部门
     */
    private String comFlag;

    /**
     * 机构级别 1 总公司 2 省公司 3 市公司 4 县支公司 5 地支公司 6 网店
     */
    private Integer comLevel;

    /**
     * 地址
     */
    private String addressName;

    /**
     * 邮编
     */
    private String postCode;

    /**
     * 电话
     */
    private String phoneNumber;

    /**
     * 传真
     */
    private String faxNumber;

    /**
     * 分支机构类型
     */
    private String branchType;

    /**
     * 电子邮箱
     */
    private String email;

    /**
     * 机构性质
     */
    private String comKind;

    /**
     * 备注
     */
    private String remark;

    /**
     * 新机构代码
     */
    private String newComCode;

    /**
     * 上级机构路径
     */
    private String oldUpperPath;

    /**
     * 是否有效 1 有效 0 无效
     */
    private String validFlag;

    /**
     * 有效日期
     */
    private LocalDate validDate;

    /**
     * 失效日期
     */
    private LocalDate invalidDate;

    /**
     * 流水号
     */
    private String serialNo;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 操作时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime operateTime;
}